package com.yunke.vo.dazi;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 云科搭子列表VO
 * 
 * @author yunke
 * @since 2024-01-01
 */
@Data
@Schema(description = "搭子列表信息")
public class YunkeDaziListVo {

    /**
     * 搭子ID
     */
    @Schema(description = "搭子ID")
    private Long id;

    /**
     * 发布者用户ID
     */
    @Schema(description = "发布者用户ID")
    private Long userId;

    /**
     * 发布者昵称
     */
    @Schema(description = "发布者昵称")
    private String publisherNickname;

    /**
     * 发布者头像
     */
    @Schema(description = "发布者头像")
    private String publisherAvatar;

    /**
     * 分类ID
     */
    @Schema(description = "分类ID")
    private Long tabClassId;

    /**
     * 分类名称
     */
    @Schema(description = "分类名称")
    private String tabClassName;

    /**
     * 标题
     */
    @Schema(description = "搭子标题")
    private String title;

    /**
     * 内容描述（截取前100字符）
     */
    @Schema(description = "搭子内容描述")
    private String content;

    /**
     * 封面图片（第一张图片）
     */
    @Schema(description = "封面图片")
    private String coverImage;

    /**
     * 活动地点
     */
    @Schema(description = "活动地点")
    private String location;

    /**
     * 详细地址
     */
    @Schema(description = "详细地址")
    private String address;

    /**
     * 需要人数
     */
    @Schema(description = "需要人数")
    private Integer needPeople;

    /**
     * 已加入人数
     */
    @Schema(description = "已加入人数")
    private Integer joinedPeople;

    /**
     * 活动时间
     */
    @Schema(description = "活动时间")
    private Long activityTime;

    /**
     * 报名截止时间
     */
    @Schema(description = "报名截止时间")
    private Long deadlineTime;

    /**
     * 费用说明
     */
    @Schema(description = "费用说明")
    private String costDesc;

    /**
     * 性别要求 0-不限 1-男 2-女
     */
    @Schema(description = "性别要求 0-不限 1-男 2-女")
    private Integer genderLimit;

    /**
     * 年龄要求最小值
     */
    @Schema(description = "年龄要求最小值")
    private Integer ageMin;

    /**
     * 年龄要求最大值
     */
    @Schema(description = "年龄要求最大值")
    private Integer ageMax;

    /**
     * 状态 0-草稿 1-已发布 2-进行中 3-已完成 4-已取消
     */
    @Schema(description = "状态 0-草稿 1-已发布 2-进行中 3-已完成 4-已取消")
    private Integer status;

    /**
     * 是否置顶 0-否 1-是
     */
    @Schema(description = "是否置顶 0-否 1-是")
    private Integer isTop;

    /**
     * 浏览次数
     */
    @Schema(description = "浏览次数")
    private Integer viewCount;

    /**
     * 点赞次数
     */
    @Schema(description = "点赞次数")
    private Integer likeCount;

    /**
     * 评论次数
     */
    @Schema(description = "评论次数")
    private Integer commentCount;

    /**
     * 发布时间
     */
    @Schema(description = "发布时间")
    private Long publishTime;

    /**
     * 当前用户是否已参与 0-否 1-是
     */
    @Schema(description = "当前用户是否已参与 0-否 1-是")
    private Integer isJoined;

    /**
     * 距离（米，当有定位信息时显示）
     */
    @Schema(description = "距离（米）")
    private Double distance;

    /**
     * 距离描述
     */
    @Schema(description = "距离描述")
    private String distanceDesc;

    /**
     * 是否可以参与
     */
    @Schema(description = "是否可以参与")
    private Boolean canJoin;

    /**
     * 热度评分（综合浏览、点赞、评论等）
     */
    @Schema(description = "热度评分")
    private Double hotScore;
} 